/**
 option 设置
 {
  leading: true, 开始执行？
    - 注意了这个只有第一个才用用处
  trailing: false 结尾执行？
 }
 */

function throttle(
  fn,
  interval,
  { leading } = { leading: true, trailing: false }
) {
  let lastTime = 0;
  function _throttle() {
    const nowTime = new Date().getTime();

    // leading 处理
    if (!lastTime && !leading) lastTime = nowTime;

    // trailing 处理

    const remainTime = interval - (nowTime - lastTime);
    if (remainTime <= 0) {
      fn();
      lastTime = nowTime;
    }
  }
  return _throttle;
}
